The present invention generally relates to a cache system in a computer system, and more specifically, to high-performance non-coherent read (or fetch) in a strongly consistent cache system for frequently read but rarely updated data.
Strong consistency is one of the consistency models used in the domain of the concurrent programming (e.g., in distributed shared memory, distributed transactions, etc.). The protocol supports strong consistency if all accesses to the shared memory (e.g., shared cached) are seen by all parallel processes (or nodes, processors, etc.) in the same order (sequentially). Therefore, only one consistent state can be observed, as opposed to weak consistency, where different parallel processes (or nodes, etc.) can perceive variables in different states.
In computer science, consistency models are used in distributed systems like distributed shared memory systems or distributed data stores (such as file systems, databases, optimistic replication systems or Web caching). The system is said to support a given model if operations on memory follow specific rules. The data consistency model specifies a contract between programmer and system, in which the system guarantees that if the programmer follows the rules, the memory will be consistent and the results of memory operations will be predictable. This is different from cache coherence. Consistency is an issue (that occurs in systems that are cached or cache-less) and is about the consistency of data with respect to all processors. Consistency is not handled by coherence as coherence deals with maintaining a global order in which writes only to a single location or a single variable are seen by all processors. Consistency deals with the ordering of operations to multiple locations with respect to all processors.